package principale.presentation.gui.interfacciaGraficaPura;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SpringLayout;

import principale.main.Main;
import principale.presentation.gui.operazioniLogiche.AscoltatoreButtonModuloUtente;
import principale.presentation.gui.operazioniLogiche.AscoltatoreTesto;
import principale.utility.SpringUtilities;

public class ModuloUtenteGUI {
	
	private static JFrame frame;
	private JPanel p;
	private String[] datiUtente;
	int buttonID;

	public ModuloUtenteGUI(String[] datiUtente, int buttonID) {
		this.datiUtente=datiUtente;
		this.buttonID=buttonID;
	}
	
	protected void creaPannello() {
		p = new JPanel(new SpringLayout());
		JLabel l = new JLabel("Username", JLabel.TRAILING);
		p.add(l);
		JTextField casellaDiTesto = new JTextField(25);
		casellaDiTesto.setText(datiUtente[0]);
		l.setLabelFor(casellaDiTesto);
		casellaDiTesto.getDocument().addDocumentListener(new AscoltatoreTesto(0,datiUtente));
		p.add(casellaDiTesto);
		
		l = new JLabel("Password", JLabel.TRAILING);
		p.add(l);
		JPasswordField casellaDiPassword = new JPasswordField(25);
		casellaDiPassword.setText(datiUtente[1]);
		l.setLabelFor(casellaDiPassword);
		casellaDiPassword.getDocument().addDocumentListener(new AscoltatoreTesto(1,datiUtente));
		p.add(casellaDiPassword);
		
		JButton confermaButton=new JButton("Conferma");
		confermaButton.addActionListener(new AscoltatoreButtonModuloUtente(0, datiUtente, buttonID));
		JButton cancellaButton=new JButton("Cancella");
		cancellaButton.addActionListener(new AscoltatoreButtonModuloUtente(1, datiUtente, buttonID));
		p.add(confermaButton);
		p.add(cancellaButton);
		//Lay out the panel.
		SpringUtilities.makeCompactGrid(p,
				3, 2, //rows, cols
				8, 8,        //initX, initY
				8, 8);       //xPad, yPad
		p.setOpaque(true);  //content panes must be opaque
	}
	
	public void mostraGUI(String titolo) {
		if (frame!=null) {
			frame.dispose();
		}
		frame=new JFrame(titolo);
		creaPannello();
		frame.add(p);
		frame.pack();
		Main.centralizzaFinestra(frame);
		frame.setVisible(true);
	}
	
	public static JFrame getFrame() {
		return frame;
	}
	
	public static void chiudiGUI() {
		frame.dispose();
	}
}
